package demo; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.lang.annotation.Documented; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import org.apache.commons.io.IOUtils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.reflections.Reflections; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; /** * * This is used for listing all spring annotations & its usages. * <ol> * <li>{@link Configuration}</li> * </ol> * */ @Configuration @ComponentScan @EnableAutoConfiguration public class Application { public static void main(String[] args) throws Exception { Reflections reflections = new Reflections("org.springframework"); List<Class<?>> clazzes = new ArrayList<Class<?>>( reflections.getTypesAnnotatedWith(Documented.class)); Collections.sort(clazzes, new Comparator<Class<?>>() { @Override public int compare(Class o1, Class o2) { return o1.getName().compareTo(o2.getName()); } }); System.out .println("##################################################"); System.out.println("Total Annotations: " + clazzes.size()); System.out .println("##################################################"); String old = IOUtils.toString(new FileReader("annotations-bkp.csv")); FileWriter out = new FileWriter(new File("annotations.csv")); out.write("\"Name\",\"Class\",\"URL\"\n"); for (Class<?> class1 : clazzes) { System.out.println(class1.getName()); Document doc = Jsoup.connect( "http://www.bing.com/search?q=" + URLEncoder.encode(class1.getName(), "UTF-8")) .get(); int ctr = 1; for (Element elem : doc.select("h2 a")) { ctr++; System.out.println(elem.attr("href")); out.append("\"" + class1.getSimpleName() + "\",\"" + class1.getName() + "\",\"" + elem.attr("href") + "\"\n"); if (ctr > 2) break; } } out.close(); System.out .println("##################################################"); } }